/**
 * 邀请返利相关API接口
 * @author 王勇程 <laughskydragon@qq.com>
 */

import request from '@/utils/request'

// 生成邀请码
export function generateInviteCode() {
  return request({
    url: '/invite/generateInviteCode',
    method: 'post'
  })
}

// 获取邀请统计
export function getInviteStats() {
  return request({
    url: '/invite/getUserInviteStats',
    method: 'post'
  })
}

// 处理邀请关系
export function processInviteRelation(data) {
  return request({
    url: '/invite/processInviteRelation',
    method: 'post',
    data
  })
}

// 获取余额信息
export function getBalance(data) {
  return request({
    url: '/invite/getUserBalance',
    method: 'post',
    data
  })
}

// 获取邀请列表
export function getInviteList(data) {
  return request({
    url: '/invite/getInviteList',
    method: 'post',
    data
  })
}

// 获取佣金记录
export function getCommissionList(data) {
  return request({
    url: '/invite/getCommissionLog',
    method: 'post',
    data
  })
}

// 获取最近邀请佣金用户（广告）
export function getRecentInviteCommissionUsers(data = {}) {
  return request({
    url: '/invite/getRecentCommissionUsers',
    method: 'post',
    data
  })
}

// 申请提现（修正：使用数据库中定义的提现接口路径）
export function withdrawApply(data) {
  return request({
    url: '/withdraw/apply',
    method: 'post',
    data
  })
}

// 获取提现记录（修正：使用数据库中定义的提现接口路径）
export function getWithdrawLog(data) {
  return request({
    url: '/withdraw/getWithdrawList',
    method: 'post',
    data
  })
}

// 获取邀请规则
export function getInviteRules(data) {
  return request({
    url: '/invite/getInviteRules',
    method: 'post',
    data
  })
}

// 获取邀请二维码
export function getInviteQrcode(data) {
  return request({
    url: '/invite/generateQrcode',
    method: 'post',
    data
  })
}

// 获取邀请信息（聚合接口）
export function getInviteInfo(data) {
  return request({
    url: '/invite/getInviteInfo',
    method: 'post',
    data
  })
}

// 导出为对象形式，方便页面调用
export default {
  generateInviteCode,
  processInviteRelation,
  getInviteStats,
  getBalance,
  getInviteList,
  getCommissionList,
  getRecentInviteCommissionUsers,
  withdrawApply,
  getWithdrawLog,
  getInviteRules,
  getInviteQrcode,
  getInviteInfo
}
